import request from '@/utils/request';
import type { PageResult, ResponseData } from '../typing';
// 参数接口
export interface GetSensitiveWordsRecordPageParams {
    /*当前第几页(默认1) */
    current?: number;
    /*每页条数(默认20) */
    size?: number;
    /*敏感词 */
    word?: string;
    /*词性ID（对应字典项） */
    wordClassId?: string;
    /*来源,1-单聊，2-群聊 */
    source?: number;
    /*开始时间，LocalDateTime格式 */
    startTime?: Record<string, unknown>;
    /*结束时间，LocalDateTime格式 */
    endTime?: Record<string, unknown>;
    /* */
    page?: {
        /* */
        records?: {
            /*ID */
            id?: string;
            /*消息ID */
            msgid?: string;
            /*消息动作，目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型 */
            action?: string;
            /*消息类型 */
            msgtype?: string;
            /*群聊消息的群id。如果是单聊则为空 */
            roomid?: string;
            /*消息发送时间 */
            msgtimeFormat?: string;
            /*消息发送方id。同一企业内容为userid，非相同企业和机器人消息均为external_userid */
            msgfrom?: string;
            /*消息接收方ID列表，多个接收ID以逗号分隔 */
            tolist?: string;
            /*消息发送方名称 */
            msgfromName?: string;
            /*消息接收方名称 */
            receiveName?: string;
            /*敏感词 */
            word?: string;
            /*词性ID（对应字典项） */
            wordClassId?: string;
            /*词性 */
            wordClass?: string;
            /*消息中出现次数 */
            number?: Record<string, unknown>;
        }[];
        /* */
        total?: Record<string, unknown>;
        /* */
        size?: Record<string, unknown>;
        /* */
        current?: Record<string, unknown>;
        /* */
        orders?: {
            /* */
            column?: string;
            /* */
            asc?: boolean;
        }[];
        /* */
        optimizeCountSql?: boolean;
        /* */
        searchCount?: boolean;
        /* */
        optimizeJoinOfCountSql?: boolean;
        /* */
        maxLimit?: Record<string, unknown>;
        /* */
        countId?: string;
        /* */
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface GetSensitiveWordsRecordPageRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        size: number;
        /* */
        total: number;
        /* */
        records: {
            /*ID */
            id: string;
            /*消息ID */
            msgid: string;
            /*消息动作，目前有send(发送消息)/recall(撤回消息)/switch(切换企业日志)三种类型 */
            action: string;
            /*消息类型 */
            msgtype: string;
            /*群聊消息的群id。如果是单聊则为空 */
            roomid: string;
            /*消息发送时间 */
            msgtimeFormat: Record<string, unknown>;
            /*消息发送方id。同一企业内容为userid，非相同企业和机器人消息均为external_userid */
            msgfrom: string;
            /*消息接收方ID列表，多个接收ID以逗号分隔 */
            tolist: string;
            /*消息发送方名称 */
            msgfromName: string;
            /*消息接收方名称 */
            receiveName: string;
            /*敏感词 */
            word: string;
            /*词性ID（对应字典项） */
            wordClassId: string;
            /*词性 */
            wordClass: string;
            /*消息中出现次数 */
            number: number;
        }[];
        /* */
        pages: number;
        /* */
        current: number;
    };
    /* */
    msg: string;
}
/**
 * 获得敏感词触发记录分页
 * @param {object} params 管理后台 - 敏感词触发记录分页 Request VO
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {string} params.word 敏感词
 * @param {string} params.wordClassId 词性ID（对应字典项）
 * @param {number} params.source 来源,1-单聊，2-群聊
 * @param {object} params.startTime 开始时间，LocalDateTime格式
 * @param {object} params.endTime 结束时间，LocalDateTime格式
 * @param {object} params.page
 * @returns
 */
export function getSensitiveWordsRecordPage(params: GetSensitiveWordsRecordPageParams): Promise<GetSensitiveWordsRecordPageRes> {
    return request.post(`/wecom/sensitive-words-record/page`, params);
}
// 参数接口
export interface CreateSensitiveWordsParams {
    /*敏感词 */
    word: string;
    /*词性ID（对应字典项） */
    wordClassId: string;
    /*词性 */
    wordClass: string;
}
/**
 * 创建敏感词
 * @param {object} params 管理后台 - 敏感词创建 Request VO
 * @param {string} params.word 敏感词
 * @param {string} params.wordClassId 词性ID（对应字典项）
 * @param {string} params.wordClass 词性
 * @returns
 */
export function createSensitiveWords(params: CreateSensitiveWordsParams): Promise<ResponseData> {
    return request.post(`/wecom/sensitive-words`, params);
}
// 参数接口
export interface UpdateSensitiveWordsParams {
    /*敏感词 */
    word: string;
    /*词性ID（对应字典项） */
    wordClassId: string;
    /*词性 */
    wordClass: string;
    /*ID */
    id: string;
}
/**
 * 更新敏感词
 * @param {object} params 管理后台 - 敏感词更新 Request VO
 * @param {string} params.word 敏感词
 * @param {string} params.wordClassId 词性ID（对应字典项）
 * @param {string} params.wordClass 词性
 * @param {string} params.id ID
 * @returns
 */
export function updateSensitiveWords(params: UpdateSensitiveWordsParams): Promise<ResponseData> {
    return request.put(`/wecom/sensitive-words`, params);
}
// 参数接口
export interface GetSensitiveWordsStatusParams {
    /*状态 */
    status: number;
    /*ID */
    ids: Record<string, unknown>[];
}
// 响应接口
export interface GetSensitiveWordsStatusRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        createTime: Record<string, unknown>;
        /* */
        updateTime: Record<string, unknown>;
        /* */
        creator: number;
        /* */
        updater: number;
        /*ID */
        id: string;
        /*敏感词 */
        word: string;
        /*词性ID（对应字典项） */
        wordClassId: string;
        /*词性 */
        wordClass: string;
        /*员工触发次数 */
        staffTriggerCount: number;
        /*业主触发次数 */
        ownerTriggerCount: number;
        /*状态，1-正常，0-禁止 */
        status: boolean;
        /*排序 */
        sort: number;
        /* */
        userName: string;
    };
    /* */
    msg: string;
}
/**
 * 敏感词启用-禁用
 * @param {object} params 管理后台 - 敏感词更新 Request VO
 * @param {number} params.status 状态
 * @param {array} params.ids ID
 * @returns
 */
export function getSensitiveWordsStatus(params: GetSensitiveWordsStatusParams): Promise<GetSensitiveWordsStatusRes> {
    return request.post(`/wecom/sensitive-words/status`, params);
}
// 响应接口
export interface GetSensitiveWordsRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        createTime: Record<string, unknown>;
        /* */
        updateTime: Record<string, unknown>;
        /* */
        creator: number;
        /* */
        updater: number;
        /*ID */
        id: string;
        /*敏感词 */
        word: string;
        /*词性ID（对应字典项） */
        wordClassId: string;
        /*词性 */
        wordClass: string;
        /*员工触发次数 */
        staffTriggerCount: number;
        /*业主触发次数 */
        ownerTriggerCount: number;
        /*状态，1-正常，0-禁止 */
        status: boolean;
        /*排序 */
        sort: number;
        /* */
        userName: string;
    };
    /* */
    msg: string;
}
/**
 * 获得敏感词
 * @param {string} id
 * @returns
 */
export function getSensitiveWords(id: string): Promise<GetSensitiveWordsRes> {
    return request.get(`/wecom/sensitive-words/${id}`);
}
/**
 * 删除敏感词
 * @param {string} id
 * @returns
 */
export function deleteSensitiveWords(id: string): Promise<ResponseData> {
    return request.delete(`/wecom/sensitive-words/${id}`);
}
// 参数接口
export interface GetSensitiveWordsPageParams {
    /*当前第几页(默认1) */
    current?: number;
    /*每页条数(默认20) */
    size?: number;
    /*敏感词 */
    word?: string;
    /*词性ID（对应字典项） */
    wordClassId?: string;
    /*创建人ID */
    creator?: string;
    /*状态，1-正常，0-禁止 */
    status?: number;
    /* */
    page?: {
        /* */
        records?: {
            /* */
            createTime?: string;
            /* */
            updateTime?: string;
            /* */
            creator?: Record<string, unknown>;
            /* */
            updater?: Record<string, unknown>;
            /*ID */
            id?: string;
            /*敏感词 */
            word?: string;
            /*词性ID（对应字典项） */
            wordClassId?: string;
            /*词性 */
            wordClass?: string;
            /*员工触发次数 */
            staffTriggerCount?: Record<string, unknown>;
            /*业主触发次数 */
            ownerTriggerCount?: Record<string, unknown>;
            /*状态，1-正常，0-禁止 */
            status?: boolean;
            /*排序 */
            sort?: Record<string, unknown>;
            /* */
            userName?: string;
        }[];
        /* */
        total?: Record<string, unknown>;
        /* */
        size?: Record<string, unknown>;
        /* */
        current?: Record<string, unknown>;
        /* */
        orders?: {
            /* */
            column?: string;
            /* */
            asc?: boolean;
        }[];
        /* */
        optimizeCountSql?: boolean;
        /* */
        searchCount?: boolean;
        /* */
        optimizeJoinOfCountSql?: boolean;
        /* */
        maxLimit?: Record<string, unknown>;
        /* */
        countId?: string;
        /* */
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface GetSensitiveWordsPageRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        size: number;
        /* */
        total: number;
        /* */
        current: number;
        /* */
        records: {
            /* */
            createTime: Record<string, unknown>;
            /* */
            updateTime: Record<string, unknown>;
            /* */
            creator: number;
            /* */
            updater: number;
            /*ID */
            id: string;
            /*敏感词 */
            word: string;
            /*词性ID（对应字典项） */
            wordClassId: string;
            /*词性 */
            wordClass: string;
            /*员工触发次数 */
            staffTriggerCount: number;
            /*业主触发次数 */
            ownerTriggerCount: number;
            /*状态，1-正常，0-禁止 */
            status: boolean;
            /*排序 */
            sort: number;
            /* */
            userName: string;
        }[];
        /* */
        pages: number;
    };
    /* */
    msg: string;
}
/**
 * 获得敏感词分页
 * @param {object} params 管理后台 - 敏感词分页 Request VO
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {string} params.word 敏感词
 * @param {string} params.wordClassId 词性ID（对应字典项）
 * @param {string} params.creator 创建人ID
 * @param {number} params.status 状态，1-正常，0-禁止
 * @param {object} params.page
 * @returns
 */
export function getSensitiveWordsPage(params: GetSensitiveWordsPageParams): Promise<GetSensitiveWordsPageRes> {
    return request.post(`/wecom/sensitive-words/page`, params);
}
